extends 棋局状态类

var 当前棋子:棋子类=null
func 进入(_data:Dictionary={}) -> void:
	print("进入:", name)
	
func 离开() -> void:
	当前棋子=null
	get_tree().call_group("红棋组","恢复正常显示")

func on_input(event: InputEvent):
	if event.is_action_pressed("mouse_right"):
		当前棋子=null
		切换状态("红棋选择")
	elif event.is_action_pressed("mouse_left"):
		var local_position=棋局.board_tile_map.to_local(event.position)
		var pos=棋局.board_tile_map.local_to_map(local_position)
		pos=Vector2i(pos.y,pos.x)
		if 当前棋子!=null and 当前棋子.可移动到pos(pos):
			var 棋子指令:String=棋局.坐标转指令(当前棋子.pos)
			var pos指令:String=棋局.坐标转指令(pos)
			切换状态("移动",{move指令=棋子指令+pos指令})

func 当棋子被选中(棋子:棋子类):
	if 棋子.is_in_group("红棋组"):
		get_tree().call_group("红棋组","恢复正常显示")
		棋子.显示被选中()
		当前棋子=棋子

func 当请求提示():
	切换状态("提示")

func 当请求认输():
	GameViewManager.打开弹窗("结局判定",{结局="红方认输"})
